/*
 *  Cero Project - Copyright   2006 The Cero Developement Team 
 *  (Michael Laguerre, Camille Roux, Matthieu Segret, Mathieu Sivade) 
 * 
 *  This program is free software; you can redistribute it and/or modify it 
 *  under the terms of the GNU General Public License as published by the Free 
 *  Software Foundation; either version 2 of the License, or (at your option) 
 *  any later version.
 * 
 *  This program is distributed in the hope that it will be useful, but 
 *  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 *  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 
 *  for more details.
 */

package org.ceroproject.ui;

import java.util.Collection;
import java.util.List;

public interface ChoiceMaker {
	// TODO : create me !
	/*
	 * These interfaces should help in making various choices, such as : - which
	 * action should go first preferably to another, when they are to be
	 * executed at the same time - which listener should go first preferably to
	 * another, when they react to the same events While some choices might be
	 * made automatically , most of them may depend on the user in some
	 * "advanced" game cards such as Magic The Gathering. In the first case, you
	 * can just make a li'l function sorting it the way you want, while in the
	 * second case, it'll rely on the graphical interface.
	 */

	/**
	 * Asks for a choice from a list of Objects
	 * 
	 * @param question The question asked to the player
	 * @param choices
	 *            the available choices
	 * @param quantity
	 *            the number of choices to select
	 * @return The choosen Objects ordered by their selection order
	 */
	List<Object> chooseFrom(String question, Collection<? extends Object> choices, int quantity);
}
